{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 森林火灾模拟"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "之前我们已经构建好了一些基础，但是还没有开始对火灾进行模拟。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 随机生长"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 在原来的基础上,我们要先让树生长，即定义 `grow_trees()` 方法\n",
    "- 定义方法之前，我们要先指定两个属性：\n",
    "    - 每个位置随机生长出树木的概率\n",
    "    - 每个位置随机被闪电击中的概率\n",
    "- 为了方便，我们定义一个辅助函数来生成随机 `bool` 矩阵，大小与森林大小一致\n",
    "- 按照给定的生长概率生成生长的位置，将 `trees` 中相应位置设为 `True`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "class Forest(object):\n",
    "    \"\"\" Forest can grow trees which eventually die.\"\"\"\n",
    "    def __init__(self, size=(150,150), p_sapling=0.0025, p_lightning=5.0e-6):\n",
    "        self.size = size\n",
    "        self.trees = np.zeros(self.size, dtype=bool)\n",
    "        self.fires = np.zeros((self.size), dtype=bool)\n",
    "        self.p_sapling = p_sapling\n",
    "        self.p_lightning = p_lightning\n",
    "        \n",
    "    def __repr__(self):\n",
    "        my_repr = \"{}(size={})\".format(self.__class__.__name__, self.size)\n",
    "        return my_repr\n",
    "    \n",
    "    def __str__(self):\n",
    "        return self.__class__.__name__\n",
    "    \n",
    "    @property\n",
    "    def num_cells(self):\n",
    "        \"\"\"Number of cells available for growing trees\"\"\"\n",
    "        return np.prod(self.size)\n",
    "    \n",
    "    @property\n",
    "    def tree_fraction(self):\n",
    "        \"\"\"\n",
    "        Fraction of trees\n",
    "        \"\"\"\n",
    "        num_trees = self.trees.sum()\n",
    "        return float(num_trees) / self.num_cells\n",
    "    \n",
    "    @property\n",
    "    def fire_fraction(self):\n",
    "        \"\"\"\n",
    "        Fraction of fires\n",
    "        \"\"\"\n",
    "        num_fires = self.fires.sum()\n",
    "        return float(num_fires) / self.num_cells\n",
    "    \n",
    "    def _rand_bool(self, p):\n",
    "        \"\"\"\n",
    "        Random boolean distributed according to p, less than p will be True\n",
    "        \"\"\"\n",
    "        return np.random.uniform(size=self.trees.shape) < p\n",
    "    \n",
    "    def grow_trees(self):\n",
    "        \"\"\"\n",
    "        Growing trees.\n",
    "        \"\"\"\n",
    "        growth_sites = self._rand_bool(self.p_sapling)\n",
    "        self.trees[growth_sites] = True"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "测试："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0\n",
      "0.00293333333333\n"
     ]
    }
   ],
   "source": [
    "forest = Forest()\n",
    "print forest.tree_fraction\n",
    "\n",
    "forest.grow_trees()\n",
    "print forest.tree_fraction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 火灾模拟"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 定义 `start_fires()`：\n",
    "    - 按照给定的概率生成被闪电击中的位置\n",
    "    - 如果闪电击中的位置有树，那么将其设为着火点\n",
    "- 定义 `burn_trees()`：\n",
    "    - 如果一棵树的上下左右有火，那么这棵树也会着火\n",
    "- 定义 `advance_one_step()`：\n",
    "    - 进行一次生长，起火，燃烧"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "class Forest(object):\n",
    "    \"\"\" Forest can grow trees which eventually die.\"\"\"\n",
    "    def __init__(self, size=(150,150), p_sapling=0.0025, p_lightning=5.0e-6):\n",
    "        self.size = size\n",
    "        self.trees = np.zeros(self.size, dtype=bool)\n",
    "        self.fires = np.zeros((self.size), dtype=bool)\n",
    "        self.p_sapling = p_sapling\n",
    "        self.p_lightning = p_lightning\n",
    "        \n",
    "    def __repr__(self):\n",
    "        my_repr = \"{}(size={})\".format(self.__class__.__name__, self.size)\n",
    "        return my_repr\n",
    "    \n",
    "    def __str__(self):\n",
    "        return self.__class__.__name__\n",
    "    \n",
    "    @property\n",
    "    def num_cells(self):\n",
    "        \"\"\"Number of cells available for growing trees\"\"\"\n",
    "        return np.prod(self.size)\n",
    "    \n",
    "    @property\n",
    "    def tree_fraction(self):\n",
    "        \"\"\"\n",
    "        Fraction of trees\n",
    "        \"\"\"\n",
    "        num_trees = self.trees.sum()\n",
    "        return float(num_trees) / self.num_cells\n",
    "    \n",
    "    @property\n",
    "    def fire_fraction(self):\n",
    "        \"\"\"\n",
    "        Fraction of fires\n",
    "        \"\"\"\n",
    "        num_fires = self.fires.sum()\n",
    "        return float(num_fires) / self.num_cells\n",
    "    \n",
    "    def _rand_bool(self, p):\n",
    "        \"\"\"\n",
    "        Random boolean distributed according to p, less than p will be True\n",
    "        \"\"\"\n",
    "        return np.random.uniform(size=self.trees.shape) < p\n",
    "    \n",
    "    def grow_trees(self):\n",
    "        \"\"\"\n",
    "        Growing trees.\n",
    "        \"\"\"\n",
    "        growth_sites = self._rand_bool(self.p_sapling)\n",
    "        self.trees[growth_sites] = True\n",
    "        \n",
    "    def start_fires(self):\n",
    "        \"\"\"\n",
    "        Start of fire.\n",
    "        \"\"\"\n",
    "        lightning_strikes = (self._rand_bool(self.p_lightning) & \n",
    "            self.trees)\n",
    "        self.fires[lightning_strikes] = True\n",
    "    \n",
    "    def burn_trees(self):\n",
    "        \"\"\"\n",
    "        Burn trees.\n",
    "        \"\"\"\n",
    "        fires = np.zeros((self.size[0] + 2, self.size[1] + 2), dtype=bool)\n",
    "        fires[1:-1, 1:-1] = self.fires\n",
    "        north = fires[:-2, 1:-1]\n",
    "        south = fires[2:, 1:-1]\n",
    "        east = fires[1:-1, :-2]\n",
    "        west = fires[1:-1, 2:]\n",
    "        new_fires = (north | south | east | west) & self.trees\n",
    "        self.trees[self.fires] = False\n",
    "        self.fires = new_fires\n",
    "        \n",
    "    def advance_one_step(self):\n",
    "        \"\"\"\n",
    "        Advance one step\n",
    "        \"\"\"\n",
    "        self.grow_trees()\n",
    "        self.start_fires()\n",
    "        self.burn_trees()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "forest = Forest()\n",
    "\n",
    "for i in range(100):\n",
    "    forest.advance_one_step()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用 `matshow()` 显示树木图像："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa180d30>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import cm\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "plt.matshow(forest.trees, cmap=cm.Greens)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "查看不同着火概率下的森林覆盖率趋势变化："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x3ce8358>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "forest = Forest()\n",
    "forest2 = Forest(p_lightning=5e-4)\n",
    "\n",
    "tree_fractions = []\n",
    "\n",
    "for i in range(2500):\n",
    "    forest.advance_one_step()\n",
    "    forest2.advance_one_step()\n",
    "    tree_fractions.append((forest.tree_fraction, forest2.tree_fraction))\n",
    "\n",
    "plt.plot(tree_fractions)\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
